1. Field of the Invention
This invention relates to network protocols for sending data packets over a computer network. More particularly, the invention relates to a network protocol that utilizes a congestion control algorithm that distinguishes between congestion loss and damage loss.
2. Description of the Related Art
Transmission Control Protocol (TCP) is a commonly used network protocol for sending data on the Internet and other computer networks. A sender node sends data to a receiver node by dividing the data into multiple packets and sending each packet separately over the network. The receiver node returns an acknowledgement (ACK) message to acknowledge receipt of each packet.
When the network is congested due to insufficient bandwidth for all the packets sent over the network, some of the packets are lost. When TCP on the sender node detects that packets are being lost, the rate at which the packets are transmitted over the network to the receiver node is reduced in order to reduce the network congestion and avoid sending the same packets multiple times.
Packet loss due to network congestion is referred to as congestion loss. Packets may also be lost due to damage loss (also referred to as random loss) caused by network transmission error where packets are dropped because the packets are corrupted by random events (e.g. cosmic rays) unrelated to the network congestion level. However, TCP does not distinguish between these two different kinds of loss and treats all packet loss as congestion loss. When damage loss is present, TCP thinks that the network is congested and decreases its throughput. However, the network may still have abundant unused bandwidth, making such a reaction unwarranted.
Investigation has shown that TCP throughput is very sensitive to packet loss, regardless of the type of loss. Even a very low damage loss rate can dramatically reduce data throughput.